A system's identity may be established and authenticated based on the unique physical properties of the system. In some applications, physically unclonable functions (PUFs) embodied in integrated circuits are used to exploit the unique physical characteristics of a system for purposes of authentication. Each instance of the IC will have slightly different physical characteristics due to the random variation in an IC fabrication process. A PUF circuit uses the physical characteristics to generate an identifier value, for example a binary number, which differs from one integrated circuit to the next due to the different physical characteristics of each manufactured device. These identifier values may be used to uniquely identify the integrated circuit, as a key for encryption and decryption, or for other purposes. Examples of circuits used to implement PUFs include delay circuits and ring oscillators, memory circuits, and cross-coupled latches. The terms PUF circuit and PUF may be used interchangeably herein.
PUFs may operate according to a challenge-response protocol. The input to a PUF is the challenge, and the output from the PUF is the response. The slight variations between instances of the PUF circuits in different systems result in the separate instances providing different responses to the same challenge. In addition to identification and authentication, PUF circuits may be used to generate volatile secret keys.
Helper data is sometimes used to compensate for instability in a PUF circuit. Since a PUF circuit relies on a physical property of a device, the PUF values may not be consistent as the device and PUF age. Since a changed PUF value may prevent authentication of a device or communication with a device, helper data in the form of an error-correcting code may be used to correct generated PUF values to the expected PUF value. While the helper data is useful in maintaining the viability of the PUF over the life of the device, the helper data may also reveal information about the PUF value. In addition, the helper data may be large and may create storage issues.